home *** CD-ROM | disk | FTP | other *** search
-
- ┌███████ ┌███ ┌███████ ┌███ ┌███████ ┌███████
- │███┐███ │███ │███┐███ │███ │███───┘ │███───┘
- │███████ │███ │███████ │███ │███████ │███████
- │███───┘ │███ │███┐███ │███ └───┐███ │███───┘
- │███ │███████ │███│███ │███ ┌███████ │███████
- └──┘ └──────┘ └──┘└──┘ └──┘ └──────┘ └──────┘
-
- BasCal
- version 1.10
-
- by Raphael Slepon
-
-
-
- Those readers of a hasty nature, eager to plunge their paws into the Plaise
- program, will do better than to read the following compilation by using the
- program's online help (Translation: press F1).
-
- Change history is recorded at the end of this file.
-
-
-
- OVERVIEW
- ========
-
- Plaise is a multi-base calculator with the following properties:
-
- a) base range: from 2 to 36 (all functions are supported for all bases)
- b) supports whole (integer) numbers, fractional (floating-point) numbers,
- and negative numbers
- c) allowed range of numbers from -2147483647 to +2147483647 (base 10)
- d) displays 11 digits after the decimal (basal) point
- e) operations: addition, substraction, multiplication, division, power,
- root, inversion, bitwise and, bitwise or, bitwise xor, bitwise not
- e) three-line display (two operands and their result)
- f) a plethora of potentially useless functions (Translation: I like lots
- of options)
- g) interactive full-screen text-based user interface
- h) online help and intelligent (of sorts) error-trapping (Translation:
- you don't lose the 42-digit number you laboriously typed in just
- because you tried to divide it by zero; come to think of it, things
- disappear only when you make them disappear, not at the program's
- whim)
- i) free for private use (Translation: there are other uses for which it
- is not free)
- j) development team is very attentive to users' requests (Translation:
- I will seriously address and attempt to implement any option you may
- wish to see in the program, however ridiculous)
-
-
-
- INTRODUCTION
- ============
-
- Plaise is a calculator, not unlike the simple calculator one is used to, and
- indeed it can be easily used as a fancy decimal calculator capable of doing
- sums, multiplications, square roots and the likes. Its distinction, however,
- lies in its ability to work in other bases (a.k.a. number systems) than the
- everyday decimal system.
-
- For those unfamiliar with the term, different bases or number systems differ
- in the number of digits used to represent numbers. The decimal system (base
- 10) uses, surprisingly, 10 digits (0 through 9). Similarly, base 2 uses 2
- digits, 0 and 1, base 19 uses 19 digits (0 - 9 and A - I), &c. As you have
- noticed, bases larger than 10 use letters as digits, following the order of
- the alphabet. This is the reason Plaise is restricted to bases up to 36, which
- uses all the digits (0-9) and letters (A-Z) available.
-
- Some bases are regularly used within restricted avenues of life, e.g. bases
- 2 and 16 are widely used in computer science, base 18 is often used in golf,
- base 7 in mining, and base 31 in North Sea whaling. Others have more
- widespread uses; an observant reader will readily discern the obvious
- relevance of the next equation to everyday life:
-
- (JAMES.II in base 29) / (John.Doe in base 26) = (54.0346113006 in base 7)
-
- Furthermore, with the advent of multi-base calculators such as this program,
- relatively unknown bases (base 34 comes to mind) may attain worldwide fame (or
- not).
-
- For those narrow-minded enough to lack applications for a multi-base
- calculator, myself to name but one, it may serve as just a regular, yet very
- accurate, calculator.
-
-
-
- STATUS
- ======
-
- For private use this program is completely free and comes with no warranty
- whatsoever. Except for distributing this program within collections of other
- Shareware and Freeware programs, any business, commercial or government use
- requires the approval of the author, who currently wishes to maintain any
- copyright left in this program.
-
- I intend to upgrade this program at irregular intervals, primarily dependent
- upon input from disgruntled users suddenly aware that the feature they need
- most just happens to be missing from the program.
-
- Don't hesitate to contact me with any requests and bug reports, preferably by
- e-mail. I promise to promptly reply to any such communication, as well as to
- try and mend what wasn't broken anyway. By the way, all this talking about bug
- reports is purely spurious, as my programs don't have bugs!
-
- My e-mail: mrkgnao@actcom.co.il
-
- My address: Raphael Slepon
- P.O.Box 15521
- Rishon Lezion 75054
- Israel
-
-
-
- INSTALLATION
- ============
-
- Absolutely none. The program will, without asking your permission and without
- notifying you in any way, irrevocably refrain from touching your CONFIG.SYS,
- AUTOEXEC.BAT, SYSTEM.INI, and WIN.INI files.
-
- Hardware requirements: a computer and DOS would be nice; if you can spare it,
- you might want to add a keyboard and a monitor.
-
- You may try to type PLAISE followed by enter at the command-line in order to
- activate the program.
-
-
-
- SCREEN LAYOUT
- =============
-
- The screen is composed of four parts:
-
- a) Title - top of screen; doesn't change much, although sightings of some
- pretty darn bizarre effects have been reported, as yet
- remaining unconfirmed
-
- b) Function Keys' Help - bottom of screen; a table filled with
- intentionally obscure abbreviations intended to
- confuse the user and help the function keys lead
- a less arduous life
-
- c) Message Line - the bottom row; try typing a letter to see one of the
- many annoying error messages you will undoubtably meet
- while working on the program
-
- d) Calculator Windows - a set of eight windows displaying:
-
- ┌─────────────┐ ┌─────────────────────┐
- ┌────────────┐ │ 1st operand │ │ base of 1st operand │
- │ operator │ └─────────────┘ └─────────────────────┘
- └────────────┘ ┌─────────────┐ ┌─────────────────────┐
- ┌────────────┐ │ 2nd operand │ │ base of 2nd operand │
- │ equal sign │ └─────────────┘ └─────────────────────┘
- └────────────┘ ┌─────────────┐ ┌─────────────────────┐
- │ result │ │ base of result │
- └─────────────┘ └─────────────────────┘
-
-
-
- TERMINOLOGY
- ===========
-
- This document contains some extremely complex terms in a pathetic attempt to
- give the reader the feeling she or he is reading a text of some relevance.
- These are explained below:
-
- Operand: a fancy term for one of the two numbers involved in an
- arithmetic calculation
-
- Operator: a fancier term for the type of calculation performed
-
- Result: a fanciest term for the result
-
- For example, in (8.4 / 4.0 = 2.1), 8.4 is the first operand, 4.0 the second
- operand, / the operator, and 2.1 the result. The term "equal sign" is too
- technical to be explained in this document.
-
- Line: a pair of a number and its base
-
- Field: one of the two parts of a number, namely the integer part (whole
- numbers) situated to the left of the (decimal) point, and the
- fraction part situated to its right; these two field will be
- marked INTEG & FRACT in this document
-
- Digit: one of the characters composing a number, whether actually a
- digit (0-9) or a letter (a-z & A-Z)
-
- Mode: one of the two editing states, namely Insert (inserts digit to
- right in INTEG, to left in FRACT) and Overwrite (overwrites
- digit, unless situated at the edges of the field); Insert mode
- is characterized by a large block cursor, Overwrite by a small
- underscore one
-
- The program supports the following bitwise operations (these are most clear
- and useful in base 2 (binary)):
-
- And: for each binary digit, result is 1 if both operands are 1,
- otherwise result is 0
-
- Or: for each binary digit, result is 1 if any operand is 1,
- otherwise result is 0
-
- Xor: for each binary digit, result is 1 if only one operand is 1,
- otherwise result is 0
-
- Not: for each binary digit, switches from 0 to 1 and vice versa
-
-
-
- CURSOR MOVEMENT
- ===============
-
- The following keys allow you to move within the calculator:
-
- Left Arrow - Move cursor one digit to the left
- Exceptions: - at left edge of FRACT - move cursor to INTEG
- - at left edge of INTEG - move cursor one space to
- the left (to allow input
- before leftmost digit)
-
- Right Arrow - Move cursor one digit to the right
- Exceptions: - at right edge of INTEG - see note below
- - at right edge of FRACT - move cursor one space to
- the right (to allow
- input after rightmost
- digit)
- Notes: - By default, when the cursor is positioned at the right
- edge of INTEG, digits are inserted to the right;
- however, if you have moved the cursor to the left,
- upon returning to the rightmost INTEG digit (in
- overwrite mode) that digit will be overwritten and
- only then will input revert to normal; therefore, when
- at right edge of INTEG, the right arrow will have
- different results under different situations: a)
- cursor come from left - cursor doesn't move but next
- digit will be inserted to right rather than overwrite
- the rightmost digit; b) cursor come from left and
- already pressed once the right arrow - move cursor to
- FRACT; c) in all other situations - also move cursor
- to FRACT.
- - I am rather proud of this lovely piece of obscurity,
- bound to add long overdue confusion to an already
- muddled-up world.
-
- Down Arrow - Move cursor one line down
-
- Up Arrow - Move cursor one line up
-
- Home - Move cursor to left edge of field
-
- End - Move cursor to right edge of field
- Exceptions: - in FRACT - move after rightmost digit
-
- Point or Tab - Move cursor to other field
-
-
-
- NUMBER EDITING
- ==============
-
- Digits - Insert or overwrite digit, dependent on mode
- Notes: Allowed digits are dependent on the base of the current
- line
-
- Ins - Switch to other mode and change cursor size accordingly
-
- Del - Delete digit under cursor
-
- Backspace - Delete digit to left of cursor
- Exceptions: - at left edge of field - delete digit under cursor
-
- The nice program will not allow you to enter numbers too big (allowed range is
- ±2147483647 in base 10), use digits outside those allowed for the current
- base, divide by zero &c., all-in-all acting like a fascist gluteal orifice.
-
-
-
- ARITHMETICAL AND BITWISE OPERATIONS
- ===================================
-
- (The symbol ^Letter means ctrl-Letter (e.g. ^A means ctrl-A))
-
- + or ^A - Add operands upon pressing '='; display '+' in operator window
-
- - or ^S - Substract operand 2 from operand 1 upon pressing '='; display
- '-' in operator window
-
- * or ^M - Multiply operands upon pressing '='; display '*' in operator
- window
-
- / or ^D - Divide operand 1 by operand 2 upon pressing '='; display '÷' in
- operator window
-
- @ or ^P - Raise operand 1 to the power of operand 2 upon pressing '=';
- display '' in operator window
-
- $ or ^R - Extract the operand 2 root of operand 1 upon pressing '=';
- display '√' in operator window; if you wonder why $, remember
- that money is the root of all evil
-
- & or ^B - Perform "bitwise and" on operands upon pressing '='; display
- '&' in operator window
-
- | or ^O - Perform "bitwise or" on operands upon pressing '='; display
- '|' in operator window
-
- ^ or ^X - Perform "bitwise xor" on operands upon pressing '='; display
- '^' in operator window
-
- space or ^N - Copy operand 2 to the result upon pressing '='; display an
- empty operator window; this allows user (i.e. the single person
- still reading this document) to have 3 independent numbers
- displayed on the screen, as well as to keep a number in the
- result for later use; this operation is referred to as the
- "null operation" for reasons unknown to the author
-
- All the above operators also result in the cursor moving to the other operand
- (to allow simple input, in the form of 4 + 5 = )
-
- = or Enter - Carry out operation (note that there is no situation in which
- operation is undefined; the default is the null operation);
- display '=' in equal-sign window (unbelievable); result is
- displayed in the result window (truly unbelievable); note that
- you cannot edit the number in the result window; note that '='
- is displayed for as long as the equation stands true, i.e.
- until you change one of the operands or the operators, at which
- time it will disappear, never to be seen or heard of again
- (well, perhaps not never); note that this is the fifth note in
- this paragraph
-
- # or alt-1 - Change current operand to its inverse (1/x) in the current
- window
-
- ~ or alt-0 - Perform "bitwise not" on current operand in the current window
-
- F6 - Change current operand to its negative (-x), in the current
- window (actually just adds or deletes a minus sign before the
- number)
-
-
-
- BASE CHANGING FUNCTION KEYS
- ===========================
-
- Since different bases are the bread-and-butterfly (with my kindest apologies
- to Lewis Carroll) of this program, it has a very (with my kindest
- apologies to Mark Twain) nice (with may kindest apologies to most anybody)
- collection of function keys to deal with changing of bases:
-
- F2 - Change current line to binary mode (base 2)
-
- shift-F2 - Change all lines to binary mode (base 2)
-
- F10 - Change current line to decimal mode (base 10)
-
- shift-F10 - Change all lines to decimal mode (base 10)
-
- F8 - Change current line to hexadecimal mode (base 16)
-
- shift-F8 - Change all lines to hexadecimal mode (base 16)
-
- F5 - Change current line to any base you choose (base 2-36)
-
- shift-F5 - Change all lines to any one base you choose (base 2-36)
-
- F7 - Change current line to next base in the sequence 2-10-16; if
- current base is not part of this sequence, change to base 10
-
- shift-F7 - Change all lines to next base in the sequence 2-10-16 (based on
- the base of the current line); if current base is not part of
- this sequence, change to base 10
-
- ctrl-F7 - Change current line to next base; if current base is 36, change
- to base 2
-
- shift-ctrl-F7- Change current line to previous base; if current base is 2,
- change to base 36
-
- alt-F7 - Change all lines to next base (based on the base of the current
- line); if current base is 36, change to base 2
-
- shift-alt-F7 - Change all lines to previous base (based on the base of the
- current line); if current base is 2, change to base 36
-
- All these keys result in the string of digits in the appropriate window(s)
- changing to mirror the change in base (although the actual value of the number
- is, of course, the same).
-
- For example, pressing F2 when 11 is displayed in base 10 will result in the
- display changing to 1011.
-
- Had enough? Well, here's a couple more:
-
- ctrl-F5 - Alter current line to any base you choose (base 2-36)
-
- alt-F5 - Alter all lines to any one base you choose (base 2-36)
-
- These two keys change the base without changing the string of digits
- displayed, i.e. actually change the value of the number. It is useful if you
- type a number and then notice you are in the wrong base. These keys will not
- allow you to change to a base in which either the current digits are not
- allowed or for which the number is too large.
-
- For example, pressing ctrl-F5 and typing 2 when 11 is displayed in base 10,
- will leave the display intact (which means the number changed to 3 in base
- 10).
-
- Remember the difference between changing a base and altering a base; it will
- come useful if you ever decide to start a career in nit picking.
-
-
-
- LINE COPYING FUNCTION KEYS
- ==========================
-
- It is often useful to be able to copy numbers from one window to another:
-
- F3 - Copy number from result to current line
-
- shift-F3 - Copy number from other operand line to current line
-
- ctrl-F3 - Copy number from result to current line then execute operation
- again; this is very useful to repeat an opeartion many times,
- each time replacing an operand (usually the first) with the
- result
-
-
-
- DISPLAY RELATED FUNCTION KEYS
- =============================
-
- F4 - Change the casing of letters in numbers appearing on the screen
- to the next option in the sequence:
-
- a) all digits uppercase (default)
- b) all digits lowercase
- c) first digit, if letter, uppercase, all others lowercase
- (proper noun capitalization)
-
- A truly useless option, bordering on the blatantly stupid
-
- shift-F4 - Turn on/off the display of number coordinates (the location of
- the cursor within the INTEG & FRACT fields). A close match to
- the previous option
-
- ctrl-F4 - Turn on/off the display of '+' for positive numbers. 'Nough
- said
-
-
-
- MISCELLANEOUS FUNCTION KEYS
- ===========================
-
- F9 - Clear the current line and return to INTEG
-
- shift-F9 - Clear all lines, as well as the operator, and return to INTEG
- of line 1
-
- shift-F6 - Allows user to repeat any key any number of times (up to 99);
- can be useful, for example, if you want to type the maximal
- integer in base 2 (1111111111111111111111111111111) - you would
- then type shift-F6, 31, 1 (all this in base 2, of course),
- which is much simpler than counting 31 keystrokes; any key, not
- just digits, can be thus repeated; trying to repeat alt-F10
- 74 times will probably not result in a very useful action
-
- F1 - Help; use PgDn and PgUp to scroll through its multitude of
- screens; use Esc to exit
-
- alt-F10 - Quit the program; probably the single most (only?) useful key
- in this program
-
-
-
- KNOWN BUGS
- ==========
-
- This program annoyingly prevents the user from dividing by zero. This is due
- to restrictions maliciously set on the author by a self-appointed committee of
- math professors. The author is currently negotiating with this body the
- revoking of this useless constraint. Users will be informed of any changes in
- the status of these negotiations as soon as Burke & Hare are back.
-
-
-
- CHANGE HISTORY
- ==============
-
- v. 1.10: - added bitwise and, or, xor & not operators
- - changed key for Power to @
- - added # key for Inversion
-
- v. 1.00: - first public version
-
-
-
- AGAIN, DON'T HESITATE TO CALL AND ASK FOR ANY IMPROVEMENT YOU MAY WISH
- ======================================================================
-
- My e-mail: mrkgnao@actcom.co.il
-
- My address: Raphael Slepon
- P.O.Box 15521
- Rishon Lezion 75054
- Israel
-
-
-
- AH, YES; WHAT'S THIS WIERD NAME FOR A PROGRAM ALL ABOUT ANYHOW?
- ===============================================================
-
- Unexpected End Of File
-